<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>can: Can_v3_0</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">can
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Can_v3_0</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_can___config.html">XCan_Config</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_can.html">XCan</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga5d6a612e7746553fce2ca0685595deee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga5d6a612e7746553fce2ca0685595deee">XCan_IsTxDone</a>(InstancePtr)</td></tr>
<tr class="separator:ga5d6a612e7746553fce2ca0685595deee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16bf9b91c18418196abe8271eed806ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga16bf9b91c18418196abe8271eed806ce">XCan_IsTxFifoFull</a>(InstancePtr)</td></tr>
<tr class="separator:ga16bf9b91c18418196abe8271eed806ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2092c4148ae5c6498597afc619bb4261"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga2092c4148ae5c6498597afc619bb4261">XCan_IsHighPriorityBufFull</a>(InstancePtr)</td></tr>
<tr class="separator:ga2092c4148ae5c6498597afc619bb4261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1723fe89d70a9e010af7cda90c9b697e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga1723fe89d70a9e010af7cda90c9b697e">XCan_IsRxEmpty</a>(InstancePtr)</td></tr>
<tr class="separator:ga1723fe89d70a9e010af7cda90c9b697e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcfdfbba7de0499f02921ab6b5626c9b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gadcfdfbba7de0499f02921ab6b5626c9b">XCan_IsAcceptFilterBusy</a>(InstancePtr)</td></tr>
<tr class="separator:gadcfdfbba7de0499f02921ab6b5626c9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga874d1b170d939f5ab18bf88fbad00b43"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga874d1b170d939f5ab18bf88fbad00b43">XCan_CreateIdValue</a>(StandardId,  SubRemoteTransReq,  IdExtension,  ExtendedId,  RemoteTransReq)</td></tr>
<tr class="separator:ga874d1b170d939f5ab18bf88fbad00b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2389175edaafb057e5a5cf089f6cdec1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga2389175edaafb057e5a5cf089f6cdec1">XCan_CreateDlcValue</a>(DataLengCode)&#160;&#160;&#160;(((DataLengCode) &lt;&lt; <a class="el" href="group__can__v3__0.html#gab4b767107a5599196e3b5b2d61457828">XCAN_DLCR_DLC_SHIFT</a>) &amp; <a class="el" href="group__can__v3__0.html#gafa0b23b8702612aeff3cc901ead4f3ee">XCAN_DLCR_DLC_MASK</a>)</td></tr>
<tr class="separator:ga2389175edaafb057e5a5cf089f6cdec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ee91da70cd3c92169c780186a9d6c51"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>(BaseAddress,  RegOffset)&#160;&#160;&#160;Xil_In32((BaseAddress) + (RegOffset))</td></tr>
<tr class="separator:ga2ee91da70cd3c92169c780186a9d6c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b58327ea939610d5b1816a686ffd6c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>(BaseAddress,  RegOffset,  Data)&#160;&#160;&#160;Xil_Out32((BaseAddress) + (RegOffset), (Data))</td></tr>
<tr class="separator:ga4b58327ea939610d5b1816a686ffd6c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga872a7de27397d76c02d260566f40a72b"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga872a7de27397d76c02d260566f40a72b">XCan_SendRecvHandler</a>) (void *CallBackRef)</td></tr>
<tr class="separator:ga872a7de27397d76c02d260566f40a72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36b95aff4d87e348e0ebb4308c668ae4"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga36b95aff4d87e348e0ebb4308c668ae4">XCan_ErrorHandler</a>) (void *CallBackRef, u32 ErrorMask)</td></tr>
<tr class="separator:ga36b95aff4d87e348e0ebb4308c668ae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66b5d2714c6bf0746e362ab2f32262e9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga66b5d2714c6bf0746e362ab2f32262e9">XCan_EventHandler</a>) (void *CallBackRef, u32 Mask)</td></tr>
<tr class="separator:ga66b5d2714c6bf0746e362ab2f32262e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gacbd9f5e256dcbd948afe916d13bc7b35"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gacbd9f5e256dcbd948afe916d13bc7b35">XCan_Initialize</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u16 DeviceId)</td></tr>
<tr class="separator:gacbd9f5e256dcbd948afe916d13bc7b35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b8e3ee4379e7a73c80a11d3877fb077"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga2b8e3ee4379e7a73c80a11d3877fb077">XCan_VmInitialize</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u16 DeviceId, u32 VirtAddr)</td></tr>
<tr class="separator:ga2b8e3ee4379e7a73c80a11d3877fb077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c52fb4d4b12d62e3e713ad182f00d8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga6c52fb4d4b12d62e3e713ad182f00d8b">XCan_Reset</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga6c52fb4d4b12d62e3e713ad182f00d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b437133a6a2f40f56cf3c80102f5b0d"><td class="memItemLeft" align="right" valign="top">u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga6b437133a6a2f40f56cf3c80102f5b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga994a0b0bd9c938e99de9d7ffceb10ef3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u8 OperationMode)</td></tr>
<tr class="separator:ga994a0b0bd9c938e99de9d7ffceb10ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga502a294405726d96834c2abf574a96e8"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga502a294405726d96834c2abf574a96e8">XCan_GetStatus</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga502a294405726d96834c2abf574a96e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a905b9f2f47e605267817c58edd1112"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga1a905b9f2f47e605267817c58edd1112">XCan_GetBusErrorCounter</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u8 *RxErrorCount, u8 *TxErrorCount)</td></tr>
<tr class="separator:ga1a905b9f2f47e605267817c58edd1112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga242ec83578f9966bd7d562ed7f5dedd3"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga242ec83578f9966bd7d562ed7f5dedd3">XCan_GetBusErrorStatus</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga242ec83578f9966bd7d562ed7f5dedd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga757aecce4c0c06ff8f4cb3dd4d0c79fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga757aecce4c0c06ff8f4cb3dd4d0c79fa">XCan_ClearBusErrorStatus</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 Mask)</td></tr>
<tr class="separator:ga757aecce4c0c06ff8f4cb3dd4d0c79fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4717011f46b8e9d5e15c0bfb04c33c8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 *FramePtr)</td></tr>
<tr class="separator:gad4717011f46b8e9d5e15c0bfb04c33c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d8ac17789423c440872ffd4585b8c3c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 *FramePtr)</td></tr>
<tr class="separator:ga1d8ac17789423c440872ffd4585b8c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ba9b10678fbc6bd6093fdc5e9eb3edd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 *FramePtr)</td></tr>
<tr class="separator:ga8ba9b10678fbc6bd6093fdc5e9eb3edd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae04419e368e843d5bf7384b8f32ba9b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gae04419e368e843d5bf7384b8f32ba9b6">XCan_AcceptFilterEnable</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 FilterIndexes)</td></tr>
<tr class="separator:gae04419e368e843d5bf7384b8f32ba9b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bc758e3b0a5fc41bcb17b49fa1e7ed4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga8bc758e3b0a5fc41bcb17b49fa1e7ed4">XCan_AcceptFilterDisable</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 FilterIndexes)</td></tr>
<tr class="separator:ga8bc758e3b0a5fc41bcb17b49fa1e7ed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02c9fb502d3fd8a0537c9efdf456defd"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga02c9fb502d3fd8a0537c9efdf456defd">XCan_AcceptFilterGetEnabled</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga02c9fb502d3fd8a0537c9efdf456defd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3079df9559ea328b414b0f8438c7991e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 FilterIndex, u32 MaskValue, u32 IdValue)</td></tr>
<tr class="separator:ga3079df9559ea328b414b0f8438c7991e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2385a83eb4e0e5f7bae366ac8ec86ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 FilterIndex, u32 *MaskValue, u32 *IdValue)</td></tr>
<tr class="separator:gab2385a83eb4e0e5f7bae366ac8ec86ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ea4b468a9ac5d22eb5411cff7a59353"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_can___config.html">XCan_Config</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga5ea4b468a9ac5d22eb5411cff7a59353">XCan_LookupConfig</a> (u16 DeviceId)</td></tr>
<tr class="separator:ga5ea4b468a9ac5d22eb5411cff7a59353"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae77955cacd567dcbbaa4594e7a12438c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_x_can___config.html">XCan_Config</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gae77955cacd567dcbbaa4594e7a12438c">XCan_GetConfig</a> (unsigned int InstanceIndex)</td></tr>
<tr class="separator:gae77955cacd567dcbbaa4594e7a12438c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75aabbb82d96151cadfd3c26a2a285e9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga75aabbb82d96151cadfd3c26a2a285e9">XCan_SetBaudRatePrescaler</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u8 Prescaler)</td></tr>
<tr class="separator:ga75aabbb82d96151cadfd3c26a2a285e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee29a9e04aa8993561e0c11d1222c1f9"><td class="memItemLeft" align="right" valign="top">u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gaee29a9e04aa8993561e0c11d1222c1f9">XCan_GetBaudRatePrescaler</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:gaee29a9e04aa8993561e0c11d1222c1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf60120410396727f6e9304ce9ba65980"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u8 SyncJumpWidth, u8 TimeSegment2, u8 TimeSegment1)</td></tr>
<tr class="separator:gaf60120410396727f6e9304ce9ba65980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab70138a7e54403355ec194f468f945fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u8 *SyncJumpWidth, u8 *TimeSegment2, u8 *TimeSegment1)</td></tr>
<tr class="separator:gab70138a7e54403355ec194f468f945fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa18e848a6ffc670e024972ffc71b2ba8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:gaa18e848a6ffc670e024972ffc71b2ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1abd3a018094fd4d586599d708c33e4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga1abd3a018094fd4d586599d708c33e4f">XCan_InterruptEnable</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 Mask)</td></tr>
<tr class="separator:ga1abd3a018094fd4d586599d708c33e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga163cd737c7421ddbd0ff492883e32558"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga163cd737c7421ddbd0ff492883e32558">XCan_InterruptDisable</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 Mask)</td></tr>
<tr class="separator:ga163cd737c7421ddbd0ff492883e32558"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5670f843250e65969ce6ef36d0e06e24"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga5670f843250e65969ce6ef36d0e06e24">XCan_InterruptGetEnabled</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga5670f843250e65969ce6ef36d0e06e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26bb19c641bfce1cb3dac4f5c0b7f71d"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga26bb19c641bfce1cb3dac4f5c0b7f71d">XCan_InterruptGetStatus</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr)</td></tr>
<tr class="separator:ga26bb19c641bfce1cb3dac4f5c0b7f71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac53101769980d4aa036844100ac732af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gac53101769980d4aa036844100ac732af">XCan_InterruptClear</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 Mask)</td></tr>
<tr class="separator:gac53101769980d4aa036844100ac732af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafc4a0e025e8e3eb800778eba5a00c66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler</a> (void *InstancePtr)</td></tr>
<tr class="separator:gaafc4a0e025e8e3eb800778eba5a00c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a7838a033b61a842b06e3ee4b06a614"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__v3__0.html#ga3a7838a033b61a842b06e3ee4b06a614">XCan_SetHandler</a> (<a class="el" href="struct_x_can.html">XCan</a> *InstancePtr, u32 HandlerType, void *CallBackFunc, void *CallBackRef)</td></tr>
<tr class="separator:ga3a7838a033b61a842b06e3ee4b06a614"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaeae513870fb472a5e3b2e04ab014989b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFIR1_OFFSET&#160;&#160;&#160;0x068</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter ID Register 1. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4ffe3a7d173cc3650af040007c210000"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFIR2_OFFSET&#160;&#160;&#160;0x070</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter ID Register 2. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7d6dc1de58e390987497d4956b3deaa6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFIR3_OFFSET&#160;&#160;&#160;0x078</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter ID Register 3. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="gad1359d3b320efecc87aa3dba24a0c4fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFIR4_OFFSET&#160;&#160;&#160;0x080</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter ID Register 4. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3ce2f3043fb07e08c1089cb0312e5663"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFMR1_OFFSET&#160;&#160;&#160;0x064</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter Mask Register 1. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga63a9cc840f2bf558f1f6d20a73291021"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFMR2_OFFSET&#160;&#160;&#160;0x06C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter Mask Register 2. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5d90112035780fe4a9f8194d7d849176"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFMR3_OFFSET&#160;&#160;&#160;0x074</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter Mask Register 3. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9fed14446aa518298d1868228c971499"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFMR4_OFFSET&#160;&#160;&#160;0x07C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter Mask Register 4. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="gae50c7c6336131825980fe6adbe7efee8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFR_OFFSET&#160;&#160;&#160;0x060</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8bc758e3b0a5fc41bcb17b49fa1e7ed4">XCan_AcceptFilterDisable()</a>, <a class="el" href="group__can__v3__0.html#gae04419e368e843d5bf7384b8f32ba9b6">XCan_AcceptFilterEnable()</a>, and <a class="el" href="group__can__v3__0.html#ga02c9fb502d3fd8a0537c9efdf456defd">XCan_AcceptFilterGetEnabled()</a>.</p>

</div>
</div>
<a class="anchor" id="ga381e95f0585ebeb9aec90d553c9bca05"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFR_UAF1_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Use Acceptance Filter No.1. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga32a8c92478c1129bd0b81f921f7e5e0d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFR_UAF2_MASK&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Use Acceptance Filter No.2. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga540f1efcafa2d70618be48c52e7637ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFR_UAF3_MASK&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Use Acceptance Filter No.3. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="gab5671b822a0a80731f0e5052eee1767c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_AFR_UAF4_MASK&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Use Acceptance Filter No.4. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, and <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7734840994c22426e0d4bfd47cc11df2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BRPR_BRP_MASK&#160;&#160;&#160;0x000000FF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Baud Rate Prescaler Mask. </p>

</div>
</div>
<a class="anchor" id="gad8e0a08c36f9f9528728ca28bb9e6244"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BRPR_OFFSET&#160;&#160;&#160;0x008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Baud Rate Prescaler Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaee29a9e04aa8993561e0c11d1222c1f9">XCan_GetBaudRatePrescaler()</a>, and <a class="el" href="group__can__v3__0.html#ga75aabbb82d96151cadfd3c26a2a285e9">XCan_SetBaudRatePrescaler()</a>.</p>

</div>
</div>
<a class="anchor" id="gacdaadb8b222d87fe9dcebd4e7bfd6598"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BTR_OFFSET&#160;&#160;&#160;0x00C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Bit Timing Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="ga482474a9585aad0b5f98f33336d86c38"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BTR_SJW_MASK&#160;&#160;&#160;0x00000180</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Sync Jump Width Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="ga53d62e28de515b3288a263d20fea0bf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BTR_SJW_SHIFT&#160;&#160;&#160;7</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Sync Jump Width Shift. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="ga71bb7c04d078e61946418f812b09cd81"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BTR_TS1_MASK&#160;&#160;&#160;0x0000000F</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Time Segment 1 Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="gac0d704dc38470642a131dda752169999"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BTR_TS2_MASK&#160;&#160;&#160;0x00000070</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Time Segment 2 Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="gabad8a33a4b1f9e8d865514c2817e4653"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_BTR_TS2_SHIFT&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Time Segment 2 Shift. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2389175edaafb057e5a5cf089f6cdec1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_CreateDlcValue</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DataLengCode</td><td>)</td>
          <td>&#160;&#160;&#160;(((DataLengCode) &lt;&lt; <a class="el" href="group__can__v3__0.html#gab4b767107a5599196e3b5b2d61457828">XCAN_DLCR_DLC_SHIFT</a>) &amp; <a class="el" href="group__can__v3__0.html#gafa0b23b8702612aeff3cc901ead4f3ee">XCAN_DLCR_DLC_MASK</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This macro calculates value for Data Length Code register given Data Length Code value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DataLengCode</td><td>indicates Data Length Code value.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value that can be assigned to Data Length Code register.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: u32 <a class="el" href="group__can__v3__0.html#ga2389175edaafb057e5a5cf089f6cdec1" title="This macro calculates value for Data Length Code register given Data Length Code value. ">XCan_CreateDlcValue(u32 DataLengCode)</a>;</dd></dl>
<p>Read the CAN specification for meaning of Data Length Code. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga874d1b170d939f5ab18bf88fbad00b43"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_CreateIdValue</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">StandardId, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">SubRemoteTransReq, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">IdExtension, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ExtendedId, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">RemoteTransReq&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">((((StandardId) &lt;&lt; <a class="code" href="group__can__v3__0.html#ga8f9c7951fae58fd2cf90131e0631304e">XCAN_IDR_ID1_SHIFT</a>) &amp; <a class="code" href="group__can__v3__0.html#gada1163dd1ad028100277856729da0c76">XCAN_IDR_ID1_MASK</a>) | \</div>
<div class="line">        (((SubRemoteTransReq) &lt;&lt; XCAN_IDR_SRR_SHIFT) &amp; <a class="code" href="group__can__v3__0.html#ga2525f6a15bbfb9db8502779b1f876a49">XCAN_IDR_SRR_MASK</a>) | \</div>
<div class="line">        (((IdExtension) &lt;&lt; <a class="code" href="group__can__v3__0.html#ga5a37127b76e4f9356f56edd8f3b0d178">XCAN_IDR_IDE_SHIFT</a>) &amp; <a class="code" href="group__can__v3__0.html#gaf39813df4090219175f47904f099c617">XCAN_IDR_IDE_MASK</a>) | \</div>
<div class="line">        (((ExtendedId) &lt;&lt; <a class="code" href="group__can__v3__0.html#gab713a9e27487c69a7672da10f97b7019">XCAN_IDR_ID2_SHIFT</a>) &amp; <a class="code" href="group__can__v3__0.html#ga7fd399769caeac6b7a857eb608ded32d">XCAN_IDR_ID2_MASK</a>) | \</div>
<div class="line">        ((RemoteTransReq) &amp; <a class="code" href="group__can__v3__0.html#ga5c4236ed24ee27b58a4068b14455535d">XCAN_IDR_RTR_MASK</a>))</div>
<div class="ttc" id="group__can__v3__0_html_gaf39813df4090219175f47904f099c617"><div class="ttname"><a href="group__can__v3__0.html#gaf39813df4090219175f47904f099c617">XCAN_IDR_IDE_MASK</a></div><div class="ttdeci">#define XCAN_IDR_IDE_MASK</div><div class="ttdoc">Identifier Extension Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:216</div></div>
<div class="ttc" id="group__can__v3__0_html_gada1163dd1ad028100277856729da0c76"><div class="ttname"><a href="group__can__v3__0.html#gada1163dd1ad028100277856729da0c76">XCAN_IDR_ID1_MASK</a></div><div class="ttdeci">#define XCAN_IDR_ID1_MASK</div><div class="ttdoc">Standard Messg Ident Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:212</div></div>
<div class="ttc" id="group__can__v3__0_html_ga2525f6a15bbfb9db8502779b1f876a49"><div class="ttname"><a href="group__can__v3__0.html#ga2525f6a15bbfb9db8502779b1f876a49">XCAN_IDR_SRR_MASK</a></div><div class="ttdeci">#define XCAN_IDR_SRR_MASK</div><div class="ttdoc">Substitute Remote TX Req. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:214</div></div>
<div class="ttc" id="group__can__v3__0_html_ga7fd399769caeac6b7a857eb608ded32d"><div class="ttname"><a href="group__can__v3__0.html#ga7fd399769caeac6b7a857eb608ded32d">XCAN_IDR_ID2_MASK</a></div><div class="ttdeci">#define XCAN_IDR_ID2_MASK</div><div class="ttdoc">Extended Message Ident Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:218</div></div>
<div class="ttc" id="group__can__v3__0_html_ga5a37127b76e4f9356f56edd8f3b0d178"><div class="ttname"><a href="group__can__v3__0.html#ga5a37127b76e4f9356f56edd8f3b0d178">XCAN_IDR_IDE_SHIFT</a></div><div class="ttdeci">#define XCAN_IDR_IDE_SHIFT</div><div class="ttdoc">Identifier Extension Shift. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:217</div></div>
<div class="ttc" id="group__can__v3__0_html_gab713a9e27487c69a7672da10f97b7019"><div class="ttname"><a href="group__can__v3__0.html#gab713a9e27487c69a7672da10f97b7019">XCAN_IDR_ID2_SHIFT</a></div><div class="ttdeci">#define XCAN_IDR_ID2_SHIFT</div><div class="ttdoc">Extended Message Ident Shift. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:219</div></div>
<div class="ttc" id="group__can__v3__0_html_ga5c4236ed24ee27b58a4068b14455535d"><div class="ttname"><a href="group__can__v3__0.html#ga5c4236ed24ee27b58a4068b14455535d">XCAN_IDR_RTR_MASK</a></div><div class="ttdeci">#define XCAN_IDR_RTR_MASK</div><div class="ttdoc">Remote TX Request Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:220</div></div>
<div class="ttc" id="group__can__v3__0_html_ga8f9c7951fae58fd2cf90131e0631304e"><div class="ttname"><a href="group__can__v3__0.html#ga8f9c7951fae58fd2cf90131e0631304e">XCAN_IDR_ID1_SHIFT</a></div><div class="ttdeci">#define XCAN_IDR_ID1_SHIFT</div><div class="ttdoc">Standard Messg Ident Shift. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:213</div></div>
</div><!-- fragment -->
<p>This macro calculates CAN message identifier value given identifier field values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">StandardId</td><td>contains Standard Message ID value. </td></tr>
    <tr><td class="paramname">SubRemoteTransReq</td><td>contains Substitute Remote Transmission Request value. </td></tr>
    <tr><td class="paramname">IdExtension</td><td>contains Identifier Extension value. </td></tr>
    <tr><td class="paramname">ExtendedId</td><td>contains Extended Message ID value. </td></tr>
    <tr><td class="paramname">RemoteTransReq</td><td>contains Remote Transmission Request value.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Message Identifier value.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: u32 XCan_CreateIdValue(u32 StandardId, u32 SubRemoteTransReq, u32 IdExtension, u32 ExtendedId, u32 RemoteTransReq);</dd></dl>
<p>Read the CAN specification for meaning of each parameter. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="gafa0b23b8702612aeff3cc901ead4f3ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DLCR_DLC_MASK&#160;&#160;&#160;0xF0000000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Length Code Mask. </p>

</div>
</div>
<a class="anchor" id="gab4b767107a5599196e3b5b2d61457828"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DLCR_DLC_SHIFT&#160;&#160;&#160;28</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Length Code Shift. </p>

</div>
</div>
<a class="anchor" id="ga9a48597cc8ff57fb7581c7847b867c22"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB0_MASK&#160;&#160;&#160;0xFF000000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 0 Mask. </p>

</div>
</div>
<a class="anchor" id="ga796c3b0d3ee690e58c2382bc9c8c8074"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB0_SHIFT&#160;&#160;&#160;24</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 0 Shift. </p>

</div>
</div>
<a class="anchor" id="ga04c8b1e84e333a103ce8ba3d2dfa65ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB1_MASK&#160;&#160;&#160;0x00FF0000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 1 Mask. </p>

</div>
</div>
<a class="anchor" id="ga32da6621a4d8d7eb4ef4b296e959e37c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB1_SHIFT&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 1 Shift. </p>

</div>
</div>
<a class="anchor" id="ga8dafb075593cdc401eda40234b40709f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB2_MASK&#160;&#160;&#160;0x0000FF00</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 2 Mask. </p>

</div>
</div>
<a class="anchor" id="gad9a7ce98eb30f0f8d29b9d0df656e114"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB2_SHIFT&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 2 Shift. </p>

</div>
</div>
<a class="anchor" id="gac76404750a67b3e94a15970dfded5613"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW1R_DB3_MASK&#160;&#160;&#160;0x000000FF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 3 Mask. </p>

</div>
</div>
<a class="anchor" id="ga5dee44a2bfea5c107dd6fcde0aa039fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB4_MASK&#160;&#160;&#160;0xFF000000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 4 Mask. </p>

</div>
</div>
<a class="anchor" id="ga5d77fd15acfe84db47bc12988683fe06"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB4_SHIFT&#160;&#160;&#160;24</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 4 Shift. </p>

</div>
</div>
<a class="anchor" id="ga175cb760f8307cae1fbde33d81e79592"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB5_MASK&#160;&#160;&#160;0x00FF0000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 5 Mask. </p>

</div>
</div>
<a class="anchor" id="gac7dab491929841ac7ebc76e28498f863"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB5_SHIFT&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 5 Shift. </p>

</div>
</div>
<a class="anchor" id="ga47eab148ef0d8d52bcc485e5830270ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB6_MASK&#160;&#160;&#160;0x0000FF00</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 6 Mask. </p>

</div>
</div>
<a class="anchor" id="ga15e5124ba29335a1d8e6d389bc917be8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB6_SHIFT&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 6 Shift. </p>

</div>
</div>
<a class="anchor" id="ga8af389ae9f91d294dc6b4deda4f2b620"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_DW2R_DB7_MASK&#160;&#160;&#160;0x000000FF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Data Byte 7. </p>

</div>
</div>
<a class="anchor" id="ga811994746b6bfc676d2218474989bf7f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ECR_OFFSET&#160;&#160;&#160;0x010</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Error Counter Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1a905b9f2f47e605267817c58edd1112">XCan_GetBusErrorCounter()</a>.</p>

</div>
</div>
<a class="anchor" id="ga980c4e9bbe063886c5d6476033fc97b0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ECR_REC_MASK&#160;&#160;&#160;0x0000FF00</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Receive Error Counter Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1a905b9f2f47e605267817c58edd1112">XCan_GetBusErrorCounter()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0d77caf803599bd6b764722231753aa4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ECR_REC_SHIFT&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Receive Error Counter Shift. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1a905b9f2f47e605267817c58edd1112">XCan_GetBusErrorCounter()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8e6a2262fbb851245a5d38921c911c15"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ECR_TEC_MASK&#160;&#160;&#160;0x000000FF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Transmit Error Counter Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1a905b9f2f47e605267817c58edd1112">XCan_GetBusErrorCounter()</a>.</p>

</div>
</div>
<a class="anchor" id="gaba97ed0970710fa7b2da922f836fdea7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ESR_ACKER_MASK&#160;&#160;&#160;0x00000010</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>ACK Error Mask. </p>

</div>
</div>
<a class="anchor" id="gaa82168a0c9d1ce36e4ec4310fdf2fcfd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ESR_BERR_MASK&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Bit Error Mask. </p>

</div>
</div>
<a class="anchor" id="ga630be69fc280301a8856ed8ccb1c5866"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ESR_CRCER_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>CRC Error Mask. </p>

</div>
</div>
<a class="anchor" id="ga71466ab85c99729cb8c88657fedcdfd3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ESR_FMER_MASK&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Form Error Mask. </p>

</div>
</div>
<a class="anchor" id="ga2e6ded36219c702549174550fdb4cf12"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ESR_OFFSET&#160;&#160;&#160;0x014</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Error Status Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga757aecce4c0c06ff8f4cb3dd4d0c79fa">XCan_ClearBusErrorStatus()</a>, and <a class="el" href="group__can__v3__0.html#ga242ec83578f9966bd7d562ed7f5dedd3">XCan_GetBusErrorStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="ga118328341a73c8b0d602c3f38b9eb587"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ESR_STER_MASK&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Stuff Error Mask. </p>

</div>
</div>
<a class="anchor" id="ga95c42c89b517eab2aa63b584178e19d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_HANDLER_ERROR&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Handler type for error interrupt. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga3a7838a033b61a842b06e3ee4b06a614">XCan_SetHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2b8a36e69531ded498ee4aae48144703"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_HANDLER_EVENT&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Handler type for all other interrupts. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga3a7838a033b61a842b06e3ee4b06a614">XCan_SetHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gac3819485b065f3726f30fab00768891a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_HANDLER_RECV&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Handler type for frame reception interrupt. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga3a7838a033b61a842b06e3ee4b06a614">XCan_SetHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0951d27e2a23e485fb9d04019714ff19"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_HANDLER_SEND&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Handler type for frame sending interrupt. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga3a7838a033b61a842b06e3ee4b06a614">XCan_SetHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gad0a76d28ba0a9ae4dc4085c0200e5f65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ICR_OFFSET&#160;&#160;&#160;0x024</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Interrupt Clear Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gac53101769980d4aa036844100ac732af">XCan_InterruptClear()</a>.</p>

</div>
</div>
<a class="anchor" id="gada1163dd1ad028100277856729da0c76"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_ID1_MASK&#160;&#160;&#160;0xFFE00000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Standard Messg Ident Mask. </p>

</div>
</div>
<a class="anchor" id="ga8f9c7951fae58fd2cf90131e0631304e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_ID1_SHIFT&#160;&#160;&#160;21</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Standard Messg Ident Shift. </p>

</div>
</div>
<a class="anchor" id="ga7fd399769caeac6b7a857eb608ded32d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_ID2_MASK&#160;&#160;&#160;0x0007FFFE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Extended Message Ident Mask. </p>

</div>
</div>
<a class="anchor" id="gab713a9e27487c69a7672da10f97b7019"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_ID2_SHIFT&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Extended Message Ident Shift. </p>

</div>
</div>
<a class="anchor" id="gaf39813df4090219175f47904f099c617"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_IDE_MASK&#160;&#160;&#160;0x00080000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Identifier Extension Mask. </p>

</div>
</div>
<a class="anchor" id="ga5a37127b76e4f9356f56edd8f3b0d178"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_IDE_SHIFT&#160;&#160;&#160;19</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Identifier Extension Shift. </p>

</div>
</div>
<a class="anchor" id="ga5c4236ed24ee27b58a4068b14455535d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_RTR_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Remote TX Request Mask. </p>

</div>
</div>
<a class="anchor" id="ga2525f6a15bbfb9db8502779b1f876a49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IDR_SRR_MASK&#160;&#160;&#160;0x00100000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Substitute Remote TX Req. </p>

</div>
</div>
<a class="anchor" id="ga1da1e22f27800aaa28b46b39fa2d6fd0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IER_OFFSET&#160;&#160;&#160;0x020</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Interrupt Enable Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga163cd737c7421ddbd0ff492883e32558">XCan_InterruptDisable()</a>, <a class="el" href="group__can__v3__0.html#ga1abd3a018094fd4d586599d708c33e4f">XCan_InterruptEnable()</a>, and <a class="el" href="group__can__v3__0.html#ga5670f843250e65969ce6ef36d0e06e24">XCan_InterruptGetEnabled()</a>.</p>

</div>
</div>
<a class="anchor" id="gadcfdfbba7de0499f02921ab6b5626c9b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_IsAcceptFilterBusy</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>(((InstancePtr)-&gt;BaseAddress), <a class="code" href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a>) &amp; <a class="code" href="group__can__v3__0.html#ga73da923dd04f1f036ca7e24e6fdc14b7">\</a></div>
<div class="line"><a class="code" href="group__can__v3__0.html#ga73da923dd04f1f036ca7e24e6fdc14b7">		XCAN_SR_ACFBSY_MASK</a>) ? TRUE : FALSE)</div>
<div class="ttc" id="group__can__v3__0_html_ga73da923dd04f1f036ca7e24e6fdc14b7"><div class="ttname"><a href="group__can__v3__0.html#ga73da923dd04f1f036ca7e24e6fdc14b7">XCAN_SR_ACFBSY_MASK</a></div><div class="ttdeci">#define XCAN_SR_ACFBSY_MASK</div><div class="ttdoc">Acceptance Filter busy Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:165</div></div>
<div class="ttc" id="group__can__v3__0_html_ga64573916e0c04f2a49f77e20801a41bf"><div class="ttname"><a href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a></div><div class="ttdeci">#define XCAN_SR_OFFSET</div><div class="ttdoc">Status Register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:82</div></div>
<div class="ttc" id="group__can__v3__0_html_ga2ee91da70cd3c92169c780186a9d6c51"><div class="ttname"><a href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a></div><div class="ttdeci">#define XCan_ReadReg(BaseAddress, RegOffset)</div><div class="ttdoc">This macro reads the given register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:289</div></div>
</div><!-- fragment -->
<p>This macro checks if the CAN device is ready for the driver to change Acceptance Filter Identifier Registers (AFIR) and Acceptance Filter Mask Registers (AFMR). </p>
<p>AFIR and AFMR for a filter are changeable only after the filter is disabled and this routine returns FALSE.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>TRUE if the device is busy and NOT ready to accept writes to AFIR and AFMR.</li>
<li>FALSE if the device is ready to accept writes to AFIR and AFMR.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: int <a class="el" href="group__can__v3__0.html#gadcfdfbba7de0499f02921ab6b5626c9b" title="This macro checks if the CAN device is ready for the driver to change Acceptance Filter Identifier Re...">XCan_IsAcceptFilterBusy(XCan *InstancePtr)</a>; </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2092c4148ae5c6498597afc619bb4261"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_IsHighPriorityBufFull</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>(((InstancePtr)-&gt;BaseAddress), <a class="code" href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a>) &amp; <a class="code" href="group__can__v3__0.html#gae3786b56d4ddf066d41dd3ecbbee85b8">\</a></div>
<div class="line"><a class="code" href="group__can__v3__0.html#gae3786b56d4ddf066d41dd3ecbbee85b8">	XCAN_SR_TXBFLL_MASK</a>) ? TRUE : FALSE)</div>
<div class="ttc" id="group__can__v3__0_html_ga64573916e0c04f2a49f77e20801a41bf"><div class="ttname"><a href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a></div><div class="ttdeci">#define XCAN_SR_OFFSET</div><div class="ttdoc">Status Register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:82</div></div>
<div class="ttc" id="group__can__v3__0_html_ga2ee91da70cd3c92169c780186a9d6c51"><div class="ttname"><a href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a></div><div class="ttdeci">#define XCan_ReadReg(BaseAddress, RegOffset)</div><div class="ttdoc">This macro reads the given register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:289</div></div>
<div class="ttc" id="group__can__v3__0_html_gae3786b56d4ddf066d41dd3ecbbee85b8"><div class="ttname"><a href="group__can__v3__0.html#gae3786b56d4ddf066d41dd3ecbbee85b8">XCAN_SR_TXBFLL_MASK</a></div><div class="ttdeci">#define XCAN_SR_TXBFLL_MASK</div><div class="ttdoc">TX High Priority Buffer full. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:167</div></div>
</div><!-- fragment -->
<p>This macro checks if the Transmission High Priority Buffer is full. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>TRUE if TX High Priority Buffer is full.</li>
<li>FALSE if TX High Priority Buffer is not full.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: int <a class="el" href="group__can__v3__0.html#ga2092c4148ae5c6498597afc619bb4261" title="This macro checks if the Transmission High Priority Buffer is full. ">XCan_IsHighPriorityBufFull(XCan *InstancePtr)</a>; </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0816aca8c9bca41953439ad0c14cbf4a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_ISR_OFFSET&#160;&#160;&#160;0x01C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Interrupt Status Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga26bb19c641bfce1cb3dac4f5c0b7f71d">XCan_InterruptGetStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1723fe89d70a9e010af7cda90c9b697e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_IsRxEmpty</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>(((InstancePtr)-&gt;BaseAddress), <a class="code" href="group__can__v3__0.html#ga0816aca8c9bca41953439ad0c14cbf4a">XCAN_ISR_OFFSET</a>) &amp; <a class="code" href="group__can__v3__0.html#ga5b1cb15de038ddda4b5a500ae3d829f4">\</a></div>
<div class="line"><a class="code" href="group__can__v3__0.html#ga5b1cb15de038ddda4b5a500ae3d829f4">		XCAN_IXR_RXNEMP_MASK</a>) ? FALSE : TRUE)</div>
<div class="ttc" id="group__can__v3__0_html_ga5b1cb15de038ddda4b5a500ae3d829f4"><div class="ttname"><a href="group__can__v3__0.html#ga5b1cb15de038ddda4b5a500ae3d829f4">XCAN_IXR_RXNEMP_MASK</a></div><div class="ttdeci">#define XCAN_IXR_RXNEMP_MASK</div><div class="ttdoc">RX FIFO Not Empty Intr Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:186</div></div>
<div class="ttc" id="group__can__v3__0_html_ga0816aca8c9bca41953439ad0c14cbf4a"><div class="ttname"><a href="group__can__v3__0.html#ga0816aca8c9bca41953439ad0c14cbf4a">XCAN_ISR_OFFSET</a></div><div class="ttdeci">#define XCAN_ISR_OFFSET</div><div class="ttdoc">Interrupt Status Register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:84</div></div>
<div class="ttc" id="group__can__v3__0_html_ga2ee91da70cd3c92169c780186a9d6c51"><div class="ttname"><a href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a></div><div class="ttdeci">#define XCan_ReadReg(BaseAddress, RegOffset)</div><div class="ttdoc">This macro reads the given register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:289</div></div>
</div><!-- fragment -->
<p>This macro checks if the receive FIFO is empty. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>TRUE if RX FIFO is empty.</li>
<li>FALSE if RX FIFO is not empty.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: int <a class="el" href="group__can__v3__0.html#ga1723fe89d70a9e010af7cda90c9b697e" title="This macro checks if the receive FIFO is empty. ">XCan_IsRxEmpty(XCan *InstancePtr)</a>; </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>, and <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5d6a612e7746553fce2ca0685595deee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_IsTxDone</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>(((InstancePtr)-&gt;BaseAddress), <a class="code" href="group__can__v3__0.html#ga0816aca8c9bca41953439ad0c14cbf4a">XCAN_ISR_OFFSET</a>) &amp; <a class="code" href="group__can__v3__0.html#gaa3b70e481b672854a2a8436dfaad2ed2">\</a></div>
<div class="line"><a class="code" href="group__can__v3__0.html#gaa3b70e481b672854a2a8436dfaad2ed2">		XCAN_IXR_TXOK_MASK</a>) ? TRUE : FALSE)</div>
<div class="ttc" id="group__can__v3__0_html_gaa3b70e481b672854a2a8436dfaad2ed2"><div class="ttname"><a href="group__can__v3__0.html#gaa3b70e481b672854a2a8436dfaad2ed2">XCAN_IXR_TXOK_MASK</a></div><div class="ttdeci">#define XCAN_IXR_TXOK_MASK</div><div class="ttdoc">TX Successful Interrupt Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:192</div></div>
<div class="ttc" id="group__can__v3__0_html_ga0816aca8c9bca41953439ad0c14cbf4a"><div class="ttname"><a href="group__can__v3__0.html#ga0816aca8c9bca41953439ad0c14cbf4a">XCAN_ISR_OFFSET</a></div><div class="ttdeci">#define XCAN_ISR_OFFSET</div><div class="ttdoc">Interrupt Status Register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:84</div></div>
<div class="ttc" id="group__can__v3__0_html_ga2ee91da70cd3c92169c780186a9d6c51"><div class="ttname"><a href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a></div><div class="ttdeci">#define XCan_ReadReg(BaseAddress, RegOffset)</div><div class="ttdoc">This macro reads the given register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:289</div></div>
</div><!-- fragment -->
<p>This macro checks if the transmission is complete. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>TRUE if the transmission is done (completed).</li>
<li>FALSE if the transmission is not completed.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: int <a class="el" href="group__can__v3__0.html#ga5d6a612e7746553fce2ca0685595deee" title="This macro checks if the transmission is complete. ">XCan_IsTxDone(XCan *InstancePtr)</a>; </dd></dl>

</div>
</div>
<a class="anchor" id="ga16bf9b91c18418196abe8271eed806ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_IsTxFifoFull</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>(((InstancePtr)-&gt;BaseAddress), <a class="code" href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a>) &amp; <a class="code" href="group__can__v3__0.html#gad1399331118c8dd22db86571ce270096">\</a></div>
<div class="line"><a class="code" href="group__can__v3__0.html#gad1399331118c8dd22db86571ce270096">		XCAN_SR_TXFLL_MASK</a>) ? TRUE : FALSE)</div>
<div class="ttc" id="group__can__v3__0_html_ga64573916e0c04f2a49f77e20801a41bf"><div class="ttname"><a href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a></div><div class="ttdeci">#define XCAN_SR_OFFSET</div><div class="ttdoc">Status Register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:82</div></div>
<div class="ttc" id="group__can__v3__0_html_ga2ee91da70cd3c92169c780186a9d6c51"><div class="ttname"><a href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a></div><div class="ttdeci">#define XCan_ReadReg(BaseAddress, RegOffset)</div><div class="ttdoc">This macro reads the given register. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:289</div></div>
<div class="ttc" id="group__can__v3__0_html_gad1399331118c8dd22db86571ce270096"><div class="ttname"><a href="group__can__v3__0.html#gad1399331118c8dd22db86571ce270096">XCAN_SR_TXFLL_MASK</a></div><div class="ttdeci">#define XCAN_SR_TXFLL_MASK</div><div class="ttdoc">TX FIFO is full Mask. </div><div class="ttdef"><b>Definition:</b> xcan_l.h:166</div></div>
</div><!-- fragment -->
<p>This macro checks if the transmission FIFO is full. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>TRUE if TX FIFO is full.</li>
<li>FALSE if TX FIFO is not full.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: int <a class="el" href="group__can__v3__0.html#ga16bf9b91c18418196abe8271eed806ce" title="This macro checks if the transmission FIFO is full. ">XCan_IsTxFifoFull(XCan *InstancePtr)</a>; </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>.</p>

</div>
</div>
<a class="anchor" id="ga519a0e1365d4237932311c794a9f3286"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_ARBLST_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Arbitration Lost Intr Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga43b89eddb5c487830ab99f876eaf5a34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_BSOFF_MASK&#160;&#160;&#160;0x00000200</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Bus Off Interrupt Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa8801f97438a944cb1b76ccaa1d3ac38"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_ERROR_MASK&#160;&#160;&#160;0x00000100</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Error Interrupt Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5b1cb15de038ddda4b5a500ae3d829f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_RXNEMP_MASK&#160;&#160;&#160;0x00000080</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO Not Empty Intr Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>, and <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="ga269318cb287c11f639cf185dce640191"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_RXOFLW_MASK&#160;&#160;&#160;0x00000040</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO Overflow Intr Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga473f195ede2bde98dedda9eecfc5efdb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_RXOK_MASK&#160;&#160;&#160;0x00000010</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>New Message Received Intr. </p>

</div>
</div>
<a class="anchor" id="ga054d2d002f9141d9d937d262f5b637de"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_RXUFLW_MASK&#160;&#160;&#160;0x00000020</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO Underflow Intr Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5fce703c1f3a145620255809ecf422bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_SLP_MASK&#160;&#160;&#160;0x00000400</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Sleep Interrupt Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gaccb86502df2129af8cbddd4da45db912"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_TXBFLL_MASK&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX High Priority Buf Full. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3436502be0f71ac99a60299c73b86f1f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_TXFLL_MASK&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX FIFO Full Interrupt Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa3b70e481b672854a2a8436dfaad2ed2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_TXOK_MASK&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX Successful Interrupt Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gaea1b2f81446269b8b30267bf840b3c31"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_IXR_WKUP_MASK&#160;&#160;&#160;0x00000800</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Wake up Interrupt Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0d49049d96621520fa9afe22db2a8a34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MAX_FRAME_SIZE&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Maximum CAN frame length in bytes. </p>

</div>
</div>
<a class="anchor" id="gac2ff2f17841fcf789f5e214205aa844a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MODE_CONFIG&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Configuration mode. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>, <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>, <a class="el" href="group__can__v3__0.html#ga75aabbb82d96151cadfd3c26a2a285e9">XCan_SetBaudRatePrescaler()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="gad11c39965154f3eeb280a07fdfcc38bc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MODE_LOOPBACK&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Loop Back mode. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>, and <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga67ad8870dd83393eb315bf8b56032117"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MODE_NORMAL&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Normal mode. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, and <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>.</p>

</div>
</div>
<a class="anchor" id="gae0bc526fa48c6a149ef2017d304c4c79"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MODE_SLEEP&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Sleep mode. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, and <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf23ad222a88f27062a9f3d3beb96ba58"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MSR_LBACK_MASK&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Loop Back Mode Select Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga37e8ec0e57e9eac25cdd6de317871872"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MSR_OFFSET&#160;&#160;&#160;0x004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Mode Select Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga80a3feff44116b7a753f9dfa0f112c80"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_MSR_SLEEP_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Sleep Mode Select Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2ee91da70cd3c92169c780186a9d6c51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_ReadReg</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BaseAddress, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">RegOffset&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;Xil_In32((BaseAddress) + (RegOffset))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>This macro reads the given register. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BaseAddress</td><td>is the base address of the device </td></tr>
    <tr><td class="paramname">RegOffset</td><td>is the register offset to be read</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The 32-bit value of the register</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: u32 <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51" title="This macro reads the given register. ">XCan_ReadReg(u32 BaseAddress, u32 RegOffset)</a>; </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8bc758e3b0a5fc41bcb17b49fa1e7ed4">XCan_AcceptFilterDisable()</a>, <a class="el" href="group__can__v3__0.html#gae04419e368e843d5bf7384b8f32ba9b6">XCan_AcceptFilterEnable()</a>, <a class="el" href="group__can__v3__0.html#gab2385a83eb4e0e5f7bae366ac8ec86ec">XCan_AcceptFilterGet()</a>, <a class="el" href="group__can__v3__0.html#ga02c9fb502d3fd8a0537c9efdf456defd">XCan_AcceptFilterGetEnabled()</a>, <a class="el" href="group__can__v3__0.html#gaee29a9e04aa8993561e0c11d1222c1f9">XCan_GetBaudRatePrescaler()</a>, <a class="el" href="group__can__v3__0.html#gab70138a7e54403355ec194f468f945fd">XCan_GetBitTiming()</a>, <a class="el" href="group__can__v3__0.html#ga1a905b9f2f47e605267817c58edd1112">XCan_GetBusErrorCounter()</a>, <a class="el" href="group__can__v3__0.html#ga242ec83578f9966bd7d562ed7f5dedd3">XCan_GetBusErrorStatus()</a>, <a class="el" href="group__can__v3__0.html#ga502a294405726d96834c2abf574a96e8">XCan_GetStatus()</a>, <a class="el" href="group__can__v3__0.html#ga5670f843250e65969ce6ef36d0e06e24">XCan_InterruptGetEnabled()</a>, <a class="el" href="group__can__v3__0.html#ga26bb19c641bfce1cb3dac4f5c0b7f71d">XCan_InterruptGetStatus()</a>, and <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="gae43dd788b3c5a301e7aa0ea2d194a19c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_RXFIFO_DLC_OFFSET&#160;&#160;&#160;0x054</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO DLC. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="gab2410ced842a8a4b3217613e43f6329d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_RXFIFO_DW1_OFFSET&#160;&#160;&#160;0x058</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO Data Word 1. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8fc00d0a9a84331527a2ab31580722cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_RXFIFO_DW2_OFFSET&#160;&#160;&#160;0x05C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO Data Word 2. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="gadf7eec8a99d418df572dd70e8668c725"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_RXFIFO_ID_OFFSET&#160;&#160;&#160;0x050</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>RX FIFO ID. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="ga73da923dd04f1f036ca7e24e6fdc14b7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_ACFBSY_MASK&#160;&#160;&#160;0x00000800</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Acceptance Filter busy Mask. </p>

</div>
</div>
<a class="anchor" id="gaa328f8b176b73bc7bb583c83bd502398"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_BBSY_MASK&#160;&#160;&#160;0x00000020</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Bus Busy Mask. </p>

</div>
</div>
<a class="anchor" id="gab508aa082186be0f16ad8226be6e6694"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_BIDLE_MASK&#160;&#160;&#160;0x00000010</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Bus Idle Mask. </p>

</div>
</div>
<a class="anchor" id="gaa686e34dea920bf42d5180aaaa232f34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_CONFIG_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Configuration Mode Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>.</p>

</div>
</div>
<a class="anchor" id="gaebb32ad0d72b5dc044713da8a52f32ea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_ERRWRN_MASK&#160;&#160;&#160;0x00000040</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Error Warning Mask. </p>

</div>
</div>
<a class="anchor" id="ga753f8cdc9cdf16b38bab4efa5c57e32c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_ESTAT_MASK&#160;&#160;&#160;0x00000180</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Error Status Mask. </p>

</div>
</div>
<a class="anchor" id="ga267319817c1549c24753bd1f217a7e94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_ESTAT_SHIFT&#160;&#160;&#160;7</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Error Status Shift. </p>

</div>
</div>
<a class="anchor" id="gabd7ac1ae3a9a72f384ac52f6c38ab54e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_LBACK_MASK&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Loop Back Mode Mask. </p>

</div>
</div>
<a class="anchor" id="gac015e8212e56cbe343bfa07e55dd8d67"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_NORMAL_MASK&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Normal Mode Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga64573916e0c04f2a49f77e20801a41bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_OFFSET&#160;&#160;&#160;0x018</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Status Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga502a294405726d96834c2abf574a96e8">XCan_GetStatus()</a>.</p>

</div>
</div>
<a class="anchor" id="gae1289ba685bbdbd31634fc1af458c3f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_SLEEP_MASK&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Sleep Mode Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>.</p>

</div>
</div>
<a class="anchor" id="gae3786b56d4ddf066d41dd3ecbbee85b8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_TXBFLL_MASK&#160;&#160;&#160;0x00000200</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX High Priority Buffer full. </p>

</div>
</div>
<a class="anchor" id="gad1399331118c8dd22db86571ce270096"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SR_TXFLL_MASK&#160;&#160;&#160;0x00000400</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX FIFO is full Mask. </p>

</div>
</div>
<a class="anchor" id="ga88b33f06b1f8f23cccef753f39a2a849"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SRR_CEN_MASK&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Can Enable Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga183cc527b562ba6494c84f9dc56ed83f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SRR_OFFSET&#160;&#160;&#160;0x000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Software Reset Register. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, and <a class="el" href="group__can__v3__0.html#ga6c52fb4d4b12d62e3e713ad182f00d8b">XCan_Reset()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4eb9794178ded7bbea3907075d6c12c8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_SRR_SRST_MASK&#160;&#160;&#160;0x00000001</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>Reset Mask. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga6c52fb4d4b12d62e3e713ad182f00d8b">XCan_Reset()</a>.</p>

</div>
</div>
<a class="anchor" id="gadc3975197d179762353e8a920a9caa0d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXBUF_DLC_OFFSET&#160;&#160;&#160;0x044</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX High Priority Buffer DLC. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6311c1adc84203d7c48ac90a6717c4b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXBUF_DW1_OFFSET&#160;&#160;&#160;0x048</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX High Priority Buf Data Word 1. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority()</a>.</p>

</div>
</div>
<a class="anchor" id="gae0eb36caf4ea62b4655b5238a246f3d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXBUF_DW2_OFFSET&#160;&#160;&#160;0x04C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX High Priority Buf Data Word 2. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0a9763565a11cd5050b4e9c41465ddf9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXBUF_ID_OFFSET&#160;&#160;&#160;0x040</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX High Priority Buffer ID. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority()</a>.</p>

</div>
</div>
<a class="anchor" id="gad09ad273f7d2eb11013eef48d20127ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXFIFO_DLC_OFFSET&#160;&#160;&#160;0x034</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX FIFO DLC. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa79a11d4a8c19f30b975ca12c69ac59b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXFIFO_DW1_OFFSET&#160;&#160;&#160;0x038</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX FIFO Data Word 1. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>.</p>

</div>
</div>
<a class="anchor" id="ga837960e76adad251699823f379f5805d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXFIFO_DW2_OFFSET&#160;&#160;&#160;0x03C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX FIFO Data Word 2. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2145be62a44e81c1899cded24970b3ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCAN_TXFIFO_ID_OFFSET&#160;&#160;&#160;0x030</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>TX FIFO ID. </p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4b58327ea939610d5b1816a686ffd6c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XCan_WriteReg</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BaseAddress, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">RegOffset, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Data&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;Xil_Out32((BaseAddress) + (RegOffset), (Data))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__l_8h.html">xcan_l.h</a>&gt;</code></p>

<p>This macro writes the given register. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BaseAddress</td><td>is the base address of the device </td></tr>
    <tr><td class="paramname">RegOffset</td><td>is the register offset to be written </td></tr>
    <tr><td class="paramname">Data</td><td>is the 32-bit value to write to the register</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-Style signature: u32 <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7" title="This macro writes the given register. ">XCan_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)</a>; </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga8bc758e3b0a5fc41bcb17b49fa1e7ed4">XCan_AcceptFilterDisable()</a>, <a class="el" href="group__can__v3__0.html#gae04419e368e843d5bf7384b8f32ba9b6">XCan_AcceptFilterEnable()</a>, <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>, <a class="el" href="group__can__v3__0.html#ga757aecce4c0c06ff8f4cb3dd4d0c79fa">XCan_ClearBusErrorStatus()</a>, <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, <a class="el" href="group__can__v3__0.html#gac53101769980d4aa036844100ac732af">XCan_InterruptClear()</a>, <a class="el" href="group__can__v3__0.html#ga163cd737c7421ddbd0ff492883e32558">XCan_InterruptDisable()</a>, <a class="el" href="group__can__v3__0.html#ga1abd3a018094fd4d586599d708c33e4f">XCan_InterruptEnable()</a>, <a class="el" href="group__can__v3__0.html#ga6c52fb4d4b12d62e3e713ad182f00d8b">XCan_Reset()</a>, <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>, <a class="el" href="group__can__v3__0.html#ga8ba9b10678fbc6bd6093fdc5e9eb3edd">XCan_SendHighPriority()</a>, <a class="el" href="group__can__v3__0.html#ga75aabbb82d96151cadfd3c26a2a285e9">XCan_SetBaudRatePrescaler()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga36b95aff4d87e348e0ebb4308c668ae4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* XCan_ErrorHandler) (void *CallBackRef, u32 ErrorMask)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Callback type for error interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CallBackRef</td><td>is a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked. </td></tr>
    <tr><td class="paramname">ErrorMask</td><td>is a bit mask indicating the cause of the error. Its value equals 'OR'ing one or more XCAN_ESR_* values defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga66b5d2714c6bf0746e362ab2f32262e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* XCan_EventHandler) (void *CallBackRef, u32 Mask)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Callback type for all kinds of interrupts except sending frame interrupt, receiving frame interrupt, and error interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CallBackRef</td><td>is a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked. </td></tr>
    <tr><td class="paramname">Mask</td><td>is a bit mask indicating the pending interrupts. Its value equals 'OR'ing one or more XCAN_IXR_* defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga872a7de27397d76c02d260566f40a72b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* XCan_SendRecvHandler) (void *CallBackRef)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>Callback type for frame sending and reception interrupts. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CallBackRef</td><td>is a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga8bc758e3b0a5fc41bcb17b49fa1e7ed4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_AcceptFilterDisable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>FilterIndexes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This routine disables individual acceptance filters. </p>
<p>Up to 4 filters could be disabled. If all acceptance filters are disabled then all received frames are stored in the RX FIFO.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FilterIndexes</td><td>specifies which filter(s) to disable. Use any XCAN_AFR_UAF*_MASK to disable one filter, and "Or" multiple XCAN_AFR_UAF*_MASK values if multiple filters need to be disabled. Any filter not specified in this parameter will keep its previous enable/disable setting. If all acceptance filters are disabled then all received frames are stored in the RX FIFO.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>Acceptance Filter Register is an optional register in Xilinx CAN device. If it is NOT existing in the device, this function should NOT be used. Calling this function in this case will cause an assertion failure. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#af3bd9c08bdbdd31a078da056a924d429">XCan::NumOfAcceptFilters</a>, <a class="el" href="group__can__v3__0.html#gae50c7c6336131825980fe6adbe7efee8">XCAN_AFR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

</div>
</div>
<a class="anchor" id="gae04419e368e843d5bf7384b8f32ba9b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_AcceptFilterEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>FilterIndexes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This routine enables individual acceptance filters. </p>
<p>Up to 4 filters could be enabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FilterIndexes</td><td>specifies which filter(s) to enable. Use any XCAN_AFR_UAF*_MASK to enable one filter, and "Or" multiple XCAN_AFR_UAF*_MASK values if multiple filters need to be enabled. Any filter not specified in this parameter will keep its previous enable/disable setting.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>Acceptance Filter Register is an optional register in Xilinx CAN device. If it is NOT existing in the device, this function should NOT be used. Calling this function in this case will cause an assertion failure. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#af3bd9c08bdbdd31a078da056a924d429">XCan::NumOfAcceptFilters</a>, <a class="el" href="group__can__v3__0.html#gae50c7c6336131825980fe6adbe7efee8">XCAN_AFR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

</div>
</div>
<a class="anchor" id="gab2385a83eb4e0e5f7bae366ac8ec86ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_AcceptFilterGet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>FilterIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>MaskValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>IdValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function reads the values of the Acceptance Filter Mask and ID Register for the specified Acceptance Filter. </p>
<p>Use XCAN_IDR_* defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to interpret the values. Read <a class="el" href="xcan_8h.html">xcan.h</a> and device specification for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FilterIndex</td><td>defines which Acceptance Filter Mask Register to get Mask and ID from. Use any single XCAN_FILTER_* value. </td></tr>
    <tr><td class="paramname">MaskValue</td><td>will store the Mask value read from the chosen Acceptance Filter Mask Register after this function returns. </td></tr>
    <tr><td class="paramname">IdValue</td><td>will store the ID value read from the chosen Acceptance Filter ID Register after this function returns.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>Acceptance Filter Mask and ID Registers are optional registers in Xilinx CAN device. If they are NOT existing in the device, this function should NOT be used. Calling this function in this case will cause an assertion failure. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#af3bd9c08bdbdd31a078da056a924d429">XCan::NumOfAcceptFilters</a>, <a class="el" href="group__can__v3__0.html#gaeae513870fb472a5e3b2e04ab014989b">XCAN_AFIR1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga4ffe3a7d173cc3650af040007c210000">XCAN_AFIR2_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga7d6dc1de58e390987497d4956b3deaa6">XCAN_AFIR3_OFFSET</a>, <a class="el" href="group__can__v3__0.html#gad1359d3b320efecc87aa3dba24a0c4fa">XCAN_AFIR4_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga3ce2f3043fb07e08c1089cb0312e5663">XCAN_AFMR1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga63a9cc840f2bf558f1f6d20a73291021">XCAN_AFMR2_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga5d90112035780fe4a9f8194d7d849176">XCAN_AFMR3_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga9fed14446aa518298d1868228c971499">XCAN_AFMR4_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga381e95f0585ebeb9aec90d553c9bca05">XCAN_AFR_UAF1_MASK</a>, <a class="el" href="group__can__v3__0.html#ga32a8c92478c1129bd0b81f921f7e5e0d">XCAN_AFR_UAF2_MASK</a>, <a class="el" href="group__can__v3__0.html#ga540f1efcafa2d70618be48c52e7637ff">XCAN_AFR_UAF3_MASK</a>, <a class="el" href="group__can__v3__0.html#gab5671b822a0a80731f0e5052eee1767c">XCAN_AFR_UAF4_MASK</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga02c9fb502d3fd8a0537c9efdf456defd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XCan_AcceptFilterGetEnabled </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function returns enabled acceptance filters. </p>
<p>Use XCAN_AFR_UAF*_MASK defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to interpret the returned value. If no acceptance filters are enabled then all received frames are stored in the RX FIFO.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value stored in Acceptance Filter Register.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>Acceptance Filter Register is an optional register in Xilinx CAN device. If it is NOT existing in the device, this function should NOT be used. Calling this function in this case will cause an assertion failure. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#af3bd9c08bdbdd31a078da056a924d429">XCan::NumOfAcceptFilters</a>, <a class="el" href="group__can__v3__0.html#gae50c7c6336131825980fe6adbe7efee8">XCAN_AFR_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga3079df9559ea328b414b0f8438c7991e">XCan_AcceptFilterSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3079df9559ea328b414b0f8438c7991e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_AcceptFilterSet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>FilterIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>MaskValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IdValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function sets values to the Acceptance Filter Mask Register (AFMR) and Acceptance Filter ID Register (AFIR) for the specified Acceptance Filter. </p>
<p>Use XCAN_IDR_* defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to create the values to set the filter. Read <a class="el" href="xcan_8h.html">xcan.h</a> and device specification for details.</p>
<p>This function should be called only after:</p><ul>
<li>The given filter is disabled by calling <a class="el" href="group__can__v3__0.html#ga8bc758e3b0a5fc41bcb17b49fa1e7ed4" title="This routine disables individual acceptance filters. ">XCan_AcceptFilterDisable()</a>;</li>
<li>And the CAN device is ready to accept writes to AFMR and AFIR, i.e., <a class="el" href="group__can__v3__0.html#gadcfdfbba7de0499f02921ab6b5626c9b" title="This macro checks if the CAN device is ready for the driver to change Acceptance Filter Identifier Re...">XCan_IsAcceptFilterBusy()</a> returns FALSE.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FilterIndex</td><td>defines which Acceptance Filter Mask and ID Register to set. Use any single XCAN_AFR_UAF*_MASK value. </td></tr>
    <tr><td class="paramname">MaskValue</td><td>is the value to write to the chosen Acceptance Filter Mask Register. </td></tr>
    <tr><td class="paramname">IdValue</td><td>is the value to write to the chosen Acceptance Filter ID Register.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the values were set successfully.</li>
<li>XST_FAILURE if the given filter was not disabled, or the CAN device was not ready to accept writes to AFMR and AFIR.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>Acceptance Filter Mask and ID Registers are optional registers in Xilinx CAN device. If they are NOT existing in the device, this function should NOT be used. Calling this function in this case will cause an assertion failure. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#af3bd9c08bdbdd31a078da056a924d429">XCan::NumOfAcceptFilters</a>, <a class="el" href="group__can__v3__0.html#ga02c9fb502d3fd8a0537c9efdf456defd">XCan_AcceptFilterGetEnabled()</a>, <a class="el" href="group__can__v3__0.html#gaeae513870fb472a5e3b2e04ab014989b">XCAN_AFIR1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga4ffe3a7d173cc3650af040007c210000">XCAN_AFIR2_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga7d6dc1de58e390987497d4956b3deaa6">XCAN_AFIR3_OFFSET</a>, <a class="el" href="group__can__v3__0.html#gad1359d3b320efecc87aa3dba24a0c4fa">XCAN_AFIR4_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga3ce2f3043fb07e08c1089cb0312e5663">XCAN_AFMR1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga63a9cc840f2bf558f1f6d20a73291021">XCAN_AFMR2_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga5d90112035780fe4a9f8194d7d849176">XCAN_AFMR3_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga9fed14446aa518298d1868228c971499">XCAN_AFMR4_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga381e95f0585ebeb9aec90d553c9bca05">XCAN_AFR_UAF1_MASK</a>, <a class="el" href="group__can__v3__0.html#ga32a8c92478c1129bd0b81f921f7e5e0d">XCAN_AFR_UAF2_MASK</a>, <a class="el" href="group__can__v3__0.html#ga540f1efcafa2d70618be48c52e7637ff">XCAN_AFR_UAF3_MASK</a>, <a class="el" href="group__can__v3__0.html#gab5671b822a0a80731f0e5052eee1767c">XCAN_AFR_UAF4_MASK</a>, <a class="el" href="group__can__v3__0.html#gadcfdfbba7de0499f02921ab6b5626c9b">XCan_IsAcceptFilterBusy</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga757aecce4c0c06ff8f4cb3dd4d0c79fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_ClearBusErrorStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function clears Error Status bit(s) previously set in Error Status Register (ESR). </p>
<p>Use the XCAN_ESR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to create the value to pass in. If a bit was cleared in Error Status Register before this function is called, it will not be touched.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
    <tr><td class="paramname">Mask</td><td>is he 32-bit mask used to clear bits in Error Status Register. Multiple XCAN_ESR_* values could be 'OR'ed to clear multiple bits</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga2e6ded36219c702549174550fdb4cf12">XCAN_ESR_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga994a0b0bd9c938e99de9d7ffceb10ef3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_EnterMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>OperationMode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function allows the CAN device to enter one of the following operation modes: </p>
<ul>
<li>Configuration Mode: Pass in parameter XCAN_MODE_CONFIG</li>
<li>Sleep Mode: Pass in parameter XCAN_MODE_SLEEP</li>
<li>Normal Mode: Pass in parameter XCAN_MODE_NORMAL</li>
<li>Loop Back Mode: Pass in parameter XCAN_MODE_LOOPBACK.</li>
</ul>
<p>Read <a class="el" href="xcan_8h.html">xcan.h</a> and device specification for detailed description of each operation mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">OperationMode</td><td>specify which operation mode to enter. Valid value is any of XCAN_MODE_* defined in <a class="el" href="xcan_8h.html">xcan.h</a>. Please note no multiple modes could be entered at the same time.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>This function does NOT ensure CAN device enters the specified operation mode before returns the control to the caller. The caller is responsible for checking current operation mode using <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d" title="This routine returns current operation mode the CAN device is in. ">XCan_GetMode()</a>. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>, <a class="el" href="group__can__v3__0.html#gac2ff2f17841fcf789f5e214205aa844a">XCAN_MODE_CONFIG</a>, <a class="el" href="group__can__v3__0.html#gad11c39965154f3eeb280a07fdfcc38bc">XCAN_MODE_LOOPBACK</a>, <a class="el" href="group__can__v3__0.html#ga67ad8870dd83393eb315bf8b56032117">XCAN_MODE_NORMAL</a>, <a class="el" href="group__can__v3__0.html#gae0bc526fa48c6a149ef2017d304c4c79">XCAN_MODE_SLEEP</a>, <a class="el" href="group__can__v3__0.html#gaf23ad222a88f27062a9f3d3beb96ba58">XCAN_MSR_LBACK_MASK</a>, <a class="el" href="group__can__v3__0.html#ga37e8ec0e57e9eac25cdd6de317871872">XCAN_MSR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga80a3feff44116b7a753f9dfa0f112c80">XCAN_MSR_SLEEP_MASK</a>, <a class="el" href="group__can__v3__0.html#ga88b33f06b1f8f23cccef753f39a2a849">XCAN_SRR_CEN_MASK</a>, <a class="el" href="group__can__v3__0.html#ga183cc527b562ba6494c84f9dc56ed83f">XCAN_SRR_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="gaee29a9e04aa8993561e0c11d1222c1f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u8 XCan_GetBaudRatePrescaler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine gets Baud Rate Prescaler value. </p>
<p>The system clock for the CAN controller is divided by (Prescaler + 1) to generate the quantum clock needed for sampling and synchronization. Read the device specification for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Current used Baud Rate Prescaler value. The value's range is from 0 to 255.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#gad8e0a08c36f9f9528728ca28bb9e6244">XCAN_BRPR_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

</div>
</div>
<a class="anchor" id="gab70138a7e54403355ec194f468f945fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_GetBitTiming </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>SyncJumpWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>TimeSegment2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>TimeSegment1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine gets Bit time. </p>
<p>Time segment 1, Time segment 2 and Synchronization Jump Width values are read in this function. According to device specification, the actual value of each of these fields is one more than the value read. Read the device specification for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">SyncJumpWidth</td><td>will store the Synchronization Jump Width value after this function returns. Its value ranges from 0 to 3. </td></tr>
    <tr><td class="paramname">TimeSegment2</td><td>will store the Time Segment 2 value after this function returns. Its value ranges from 0 to 7. </td></tr>
    <tr><td class="paramname">TimeSegment1</td><td>will store the Time Segment 1 value after this function returns. Its value ranges from 0 to 15.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#gacdaadb8b222d87fe9dcebd4e7bfd6598">XCAN_BTR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga482474a9585aad0b5f98f33336d86c38">XCAN_BTR_SJW_MASK</a>, <a class="el" href="group__can__v3__0.html#ga53d62e28de515b3288a263d20fea0bf3">XCAN_BTR_SJW_SHIFT</a>, <a class="el" href="group__can__v3__0.html#ga71bb7c04d078e61946418f812b09cd81">XCAN_BTR_TS1_MASK</a>, <a class="el" href="group__can__v3__0.html#gac0d704dc38470642a131dda752169999">XCAN_BTR_TS2_MASK</a>, <a class="el" href="group__can__v3__0.html#gabad8a33a4b1f9e8d865514c2817e4653">XCAN_BTR_TS2_SHIFT</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga1a905b9f2f47e605267817c58edd1112"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_GetBusErrorCounter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>RxErrorCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>TxErrorCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function reads Receive and Transmit error counters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">RxErrorCount</td><td>will contain Receive Error Counter value after this function returns. </td></tr>
    <tr><td class="paramname">TxErrorCount</td><td>will contain Transmit Error Counter value after this function returns.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga811994746b6bfc676d2218474989bf7f">XCAN_ECR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga980c4e9bbe063886c5d6476033fc97b0">XCAN_ECR_REC_MASK</a>, <a class="el" href="group__can__v3__0.html#ga0d77caf803599bd6b764722231753aa4">XCAN_ECR_REC_SHIFT</a>, <a class="el" href="group__can__v3__0.html#ga8e6a2262fbb851245a5d38921c911c15">XCAN_ECR_TEC_MASK</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga242ec83578f9966bd7d562ed7f5dedd3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XCan_GetBusErrorStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function reads Error Status value from Error Status Register (ESR). </p>
<p>Use the XCAN_ESR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to interpret the returned value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The 32-bit value read from Error Status Register.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga2e6ded36219c702549174550fdb4cf12">XCAN_ESR_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gae77955cacd567dcbbaa4594e7a12438c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_x_can___config.html">XCan_Config</a> * XCan_GetConfig </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>InstanceIndex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function looks for the device configuration based on the device index. </p>
<p>The table XCan_ConfigTable[] contains the configuration information for each device in the system.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstanceIndex</td><td>is a 0-based integer indexing all CAN devices in the system.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the configuration table entry corresponding to the given device ID, or NULL if no match is found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ga6b437133a6a2f40f56cf3c80102f5b0d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u8 XCan_GetMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This routine returns current operation mode the CAN device is in. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XCAN_MODE_CONFIG if the device is in Configuration Mode.</li>
<li>XCAN_MODE_SLEEP if the device is in Sleep Mode.</li>
<li>XCAN_MODE_NORMAL if the device is in Normal Mode.</li>
<li>XCAN_MODE_LOOPBACK if the device is in Loop Back Mode.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga502a294405726d96834c2abf574a96e8">XCan_GetStatus()</a>, <a class="el" href="group__can__v3__0.html#gac2ff2f17841fcf789f5e214205aa844a">XCAN_MODE_CONFIG</a>, <a class="el" href="group__can__v3__0.html#gad11c39965154f3eeb280a07fdfcc38bc">XCAN_MODE_LOOPBACK</a>, <a class="el" href="group__can__v3__0.html#ga67ad8870dd83393eb315bf8b56032117">XCAN_MODE_NORMAL</a>, <a class="el" href="group__can__v3__0.html#gae0bc526fa48c6a149ef2017d304c4c79">XCAN_MODE_SLEEP</a>, <a class="el" href="group__can__v3__0.html#gaa686e34dea920bf42d5180aaaa232f34">XCAN_SR_CONFIG_MASK</a>, <a class="el" href="group__can__v3__0.html#gac015e8212e56cbe343bfa07e55dd8d67">XCAN_SR_NORMAL_MASK</a>, and <a class="el" href="group__can__v3__0.html#gae1289ba685bbdbd31634fc1af458c3f0">XCAN_SR_SLEEP_MASK</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>, <a class="el" href="group__can__v3__0.html#ga75aabbb82d96151cadfd3c26a2a285e9">XCan_SetBaudRatePrescaler()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="ga502a294405726d96834c2abf574a96e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XCan_GetStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function returns Status value from Status Register (SR). </p>
<p>Use the XCAN_SR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to interpret the returned value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The 32-bit value read from Status Register.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>, and <a class="el" href="group__can__v3__0.html#ga64573916e0c04f2a49f77e20801a41bf">XCAN_SR_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>.</p>

</div>
</div>
<a class="anchor" id="gacbd9f5e256dcbd948afe916d13bc7b35"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_Initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This routine initializes a specific <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance/driver. </p>
<p>This function should only be used when no Virtual Memory support is needed. To use virtual memory, the caller should invoke <a class="el" href="group__can__v3__0.html#ga2b8e3ee4379e7a73c80a11d3877fb077" title="This routine initializes of a specific XCan instance/driver. ">XCan_VmInitialize()</a>. See the description of <a class="el" href="group__can__v3__0.html#ga2b8e3ee4379e7a73c80a11d3877fb077" title="This routine initializes of a specific XCan instance/driver. ">XCan_VmInitialize()</a> for detailed information.</p>
<p>This initialization entails:</p><ul>
<li>Search for device configuration given the device ID.</li>
<li>Initialize Base Address field of the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> structure using the device address in the found device configuration.</li>
<li>Populate all other data fields in the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> structure</li>
<li>Reset the device.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">DeviceId</td><td>is the unique ID of the device controlled by this <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance. Passing in a device ID associates the generic <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to a specific device, as chosen by the caller or application developer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful<ul>
<li>XST_DEVICE_NOT_FOUND if device configuration information was not found for a device with the supplied device ID.</li>
</ul>
</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can___config.html#a58f0a85525f3bd570b0c0dfa6e911d22">XCan_Config::BaseAddress</a>, <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, and <a class="el" href="group__can__v3__0.html#ga5ea4b468a9ac5d22eb5411cff7a59353">XCan_LookupConfig()</a>.</p>

</div>
</div>
<a class="anchor" id="gac53101769980d4aa036844100ac732af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_InterruptClear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This function clears interrupt(s). </p>
<p>Every bit set in Interrupt Status Register indicates that a specific type of interrupt is occurring, and this function clears one or more interrupts by writing a bit mask to Interrupt Clear Register.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">Mask</td><td>is the mask to clear. Bit positions of 1 will be cleared. Bit positions of 0 will not change the previous interrupt status. This mask is formed by OR'ing XCAN_IXR_* bits defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#gad0a76d28ba0a9ae4dc4085c0200e5f65">XCAN_ICR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga26bb19c641bfce1cb3dac4f5c0b7f71d">XCan_InterruptGetStatus()</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>, and <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>.</p>

</div>
</div>
<a class="anchor" id="ga163cd737c7421ddbd0ff492883e32558"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_InterruptDisable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine disables interrupt(s). </p>
<p>Use the XCAN_IXR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to create the bit-mask to disable interrupt(s).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">Mask</td><td>is the mask to disable. Bit positions of 1 will be disabled. Bit positions of 0 will keep the previous setting. This mask is formed by OR'ing XCAN_IXR_* bits defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga1da1e22f27800aaa28b46b39fa2d6fd0">XCAN_IER_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga5670f843250e65969ce6ef36d0e06e24">XCan_InterruptGetEnabled()</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga1abd3a018094fd4d586599d708c33e4f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_InterruptEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine enables interrupt(s). </p>
<p>Use the XCAN_IXR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to create the bit-mask to enable interrupts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">Mask</td><td>is the mask to enable. Bit positions of 1 will be enabled. Bit positions of 0 will keep the previous setting. This mask is formed by OR'ing XCAN_IXR_* bits defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga1da1e22f27800aaa28b46b39fa2d6fd0">XCAN_IER_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga5670f843250e65969ce6ef36d0e06e24">XCan_InterruptGetEnabled()</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga5670f843250e65969ce6ef36d0e06e24"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XCan_InterruptGetEnabled </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine returns enabled interrupt(s). </p>
<p>Use the XCAN_IXR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to interpret the returned value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Enabled interrupt(s) in a 32-bit format.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga1da1e22f27800aaa28b46b39fa2d6fd0">XCAN_IER_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#ga163cd737c7421ddbd0ff492883e32558">XCan_InterruptDisable()</a>, <a class="el" href="group__can__v3__0.html#ga1abd3a018094fd4d586599d708c33e4f">XCan_InterruptEnable()</a>, and <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga26bb19c641bfce1cb3dac4f5c0b7f71d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XCan_InterruptGetStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine returns interrupt status read from Interrupt Status Register. </p>
<p>Use the XCAN_IXR_* constants defined in <a class="el" href="xcan__l_8h.html">xcan_l.h</a> to interpret the returned value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value stored in Interrupt Status Register.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga0816aca8c9bca41953439ad0c14cbf4a">XCAN_ISR_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gac53101769980d4aa036844100ac732af">XCan_InterruptClear()</a>, and <a class="el" href="group__can__v3__0.html#gaafc4a0e025e8e3eb800778eba5a00c66">XCan_IntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gaafc4a0e025e8e3eb800778eba5a00c66"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_IntrHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine is the interrupt handler for the CAN driver. </p>
<p>This handler reads the interrupt status from the ISR, determines the source of the interrupts, calls according callbacks, and finally clears the interrupts.</p>
<p>Application beyond this driver is responsible for providing callbacks to handle interrupts and installing the callbacks using <a class="el" href="group__can__v3__0.html#ga3a7838a033b61a842b06e3ee4b06a614" title="This routine installs an asynchronous callback function for the given HandlerType: ...">XCan_SetHandler()</a> during initialization phase. An example delivered with this driver demonstrates how this could be done.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance that just interrupted.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a85a35a86e926f2f6c881b919323e1a8a">XCan::ErrorHandler</a>, <a class="el" href="struct_x_can.html#acc444eee1192bc6a921d264b452c507c">XCan::ErrorRef</a>, <a class="el" href="struct_x_can.html#acc72a94f8c346fdf0925fab5ed957a79">XCan::EventHandler</a>, <a class="el" href="struct_x_can.html#aba90fb0e2c69978d21a8b53358c7f8b6">XCan::EventRef</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#a8f2d0f6050bb89ce5854b703caceb883">XCan::RecvHandler</a>, <a class="el" href="struct_x_can.html#a6bbcd54ab93e47c5cf5ba20194667760">XCan::RecvRef</a>, <a class="el" href="struct_x_can.html#a1860cf3346043b070b289f09f38ee6d5">XCan::SendHandler</a>, <a class="el" href="struct_x_can.html#a9f878dac03d57becb449745f0e443907">XCan::SendRef</a>, <a class="el" href="group__can__v3__0.html#ga757aecce4c0c06ff8f4cb3dd4d0c79fa">XCan_ClearBusErrorStatus()</a>, <a class="el" href="group__can__v3__0.html#ga242ec83578f9966bd7d562ed7f5dedd3">XCan_GetBusErrorStatus()</a>, <a class="el" href="group__can__v3__0.html#gac53101769980d4aa036844100ac732af">XCan_InterruptClear()</a>, <a class="el" href="group__can__v3__0.html#ga5670f843250e65969ce6ef36d0e06e24">XCan_InterruptGetEnabled()</a>, <a class="el" href="group__can__v3__0.html#ga26bb19c641bfce1cb3dac4f5c0b7f71d">XCan_InterruptGetStatus()</a>, <a class="el" href="group__can__v3__0.html#ga519a0e1365d4237932311c794a9f3286">XCAN_IXR_ARBLST_MASK</a>, <a class="el" href="group__can__v3__0.html#ga43b89eddb5c487830ab99f876eaf5a34">XCAN_IXR_BSOFF_MASK</a>, <a class="el" href="group__can__v3__0.html#gaa8801f97438a944cb1b76ccaa1d3ac38">XCAN_IXR_ERROR_MASK</a>, <a class="el" href="group__can__v3__0.html#ga5b1cb15de038ddda4b5a500ae3d829f4">XCAN_IXR_RXNEMP_MASK</a>, <a class="el" href="group__can__v3__0.html#ga269318cb287c11f639cf185dce640191">XCAN_IXR_RXOFLW_MASK</a>, <a class="el" href="group__can__v3__0.html#ga054d2d002f9141d9d937d262f5b637de">XCAN_IXR_RXUFLW_MASK</a>, <a class="el" href="group__can__v3__0.html#ga5fce703c1f3a145620255809ecf422bb">XCAN_IXR_SLP_MASK</a>, <a class="el" href="group__can__v3__0.html#gaccb86502df2129af8cbddd4da45db912">XCAN_IXR_TXBFLL_MASK</a>, <a class="el" href="group__can__v3__0.html#ga3436502be0f71ac99a60299c73b86f1f">XCAN_IXR_TXFLL_MASK</a>, <a class="el" href="group__can__v3__0.html#gaa3b70e481b672854a2a8436dfaad2ed2">XCAN_IXR_TXOK_MASK</a>, and <a class="el" href="group__can__v3__0.html#gaea1b2f81446269b8b30267bf840b3c31">XCAN_IXR_WKUP_MASK</a>.</p>

</div>
</div>
<a class="anchor" id="ga5ea4b468a9ac5d22eb5411cff7a59353"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_x_can___config.html">XCan_Config</a> * XCan_LookupConfig </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function looks for the device configuration based on the unique device ID. </p>
<p>The table XCan_ConfigTable[] contains the configuration information for each device in the system.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DeviceId</td><td>is the unique device ID of the device being looked up.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the configuration table entry corresponding to the given device ID, or NULL if no match is found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gacbd9f5e256dcbd948afe916d13bc7b35">XCan_Initialize()</a>, and <a class="el" href="group__can__v3__0.html#ga2b8e3ee4379e7a73c80a11d3877fb077">XCan_VmInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1d8ac17789423c440872ffd4585b8c3c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_Recv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>FramePtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function receives a CAN Frame. </p>
<p>This function first checks if RX FIFO is empty, if not, it then reads a frame from the RX FIFO into the given buffer. This function returns error code immediately if there is no frame in the RX FIFO.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FramePtr</td><td>is a pointer to a 32-bit aligned buffer where the CAN frame to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if RX FIFO was not empty and a frame was read from RX FIFO successfully and written into the given buffer;</li>
<li>XST_NO_DATA if there is no frame to be received from the FIFO</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#gac53101769980d4aa036844100ac732af">XCan_InterruptClear()</a>, <a class="el" href="group__can__v3__0.html#ga1723fe89d70a9e010af7cda90c9b697e">XCan_IsRxEmpty</a>, <a class="el" href="group__can__v3__0.html#ga5b1cb15de038ddda4b5a500ae3d829f4">XCAN_IXR_RXNEMP_MASK</a>, <a class="el" href="group__can__v3__0.html#ga2ee91da70cd3c92169c780186a9d6c51">XCan_ReadReg</a>, <a class="el" href="group__can__v3__0.html#gae43dd788b3c5a301e7aa0ea2d194a19c">XCAN_RXFIFO_DLC_OFFSET</a>, <a class="el" href="group__can__v3__0.html#gab2410ced842a8a4b3217613e43f6329d">XCAN_RXFIFO_DW1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga8fc00d0a9a84331527a2ab31580722cd">XCAN_RXFIFO_DW2_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#gadf7eec8a99d418df572dd70e8668c725">XCAN_RXFIFO_ID_OFFSET</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6c52fb4d4b12d62e3e713ad182f00d8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XCan_Reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function resets the CAN device. </p>
<p>Calling this function resets the device immediately, and any pending transmission or reception is terminated at once. Both Object Layer and Transfer Layer are reset. This function does not reset the Physical Layer. All registers are reset to the default values, and no previous status will be restored. TX FIFO, RX FIFO and TX High Priority Buffer are also reset.</p>
<p>When a reset is required due to an internal error, the driver notifies the upper layer software of this need through the error status code or interrupts The upper layer software is responsible for calling this Reset function and then re-configuring the device.</p>
<p>The CAN device will be in Configuration Mode immediately after this function returns.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga183cc527b562ba6494c84f9dc56ed83f">XCAN_SRR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga4eb9794178ded7bbea3907075d6c12c8">XCAN_SRR_SRST_MASK</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa18e848a6ffc670e024972ffc71b2ba8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_SelfTest </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This function runs a self-test on the CAN driver/device. </p>
<p>The test resets the device, sets up the Loop Back mode, sends a standard frame, receives the frame, verifies the contents, and resets the device again.</p>
<p>Note that this is a destructive test in that resets of the device are performed. Refer to the device specification for the device status after the reset operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the self-test passed. i.e., the frame received via the internal loop back has the same contents as the sent frame.<ul>
<li>XST_FAILURE Otherwise.</li>
</ul>
</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>If the CAN device does not work properly, this function may enter an infinite loop and will never return to the caller. <br />
<br />
 If XST_FAILURE is returned, the device is not reset so that the caller could have a chance to check reason(s) causing the failure. </p>

<p>References <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga2389175edaafb057e5a5cf089f6cdec1">XCan_CreateDlcValue</a>, <a class="el" href="group__can__v3__0.html#ga874d1b170d939f5ab18bf88fbad00b43">XCan_CreateIdValue</a>, <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3">XCan_EnterMode()</a>, <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>, <a class="el" href="group__can__v3__0.html#ga1723fe89d70a9e010af7cda90c9b697e">XCan_IsRxEmpty</a>, <a class="el" href="group__can__v3__0.html#gac2ff2f17841fcf789f5e214205aa844a">XCAN_MODE_CONFIG</a>, <a class="el" href="group__can__v3__0.html#gad11c39965154f3eeb280a07fdfcc38bc">XCAN_MODE_LOOPBACK</a>, <a class="el" href="group__can__v3__0.html#ga1d8ac17789423c440872ffd4585b8c3c">XCan_Recv()</a>, <a class="el" href="group__can__v3__0.html#ga6c52fb4d4b12d62e3e713ad182f00d8b">XCan_Reset()</a>, <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8">XCan_Send()</a>, <a class="el" href="group__can__v3__0.html#ga75aabbb82d96151cadfd3c26a2a285e9">XCan_SetBaudRatePrescaler()</a>, and <a class="el" href="group__can__v3__0.html#gaf60120410396727f6e9304ce9ba65980">XCan_SetBitTiming()</a>.</p>

</div>
</div>
<a class="anchor" id="gad4717011f46b8e9d5e15c0bfb04c33c8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_Send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>FramePtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This function sends a CAN Frame. </p>
<p>This function first checks if TX FIFO is full. If not, it then writes the given frame into the TX FIFO; otherwise, it returns error code immediately. This function does not wait for the given frame being sent to CAN bus.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FramePtr</td><td>is a pointer to a 32-bit aligned buffer containing the CAN frame to be sent.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if TX FIFO was not full and the given frame was written into the FIFO;</li>
<li>XST_FIFO_NO_ROOM if there is no room in the TX FIFO for the given frame</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga16bf9b91c18418196abe8271eed806ce">XCan_IsTxFifoFull</a>, <a class="el" href="group__can__v3__0.html#gad09ad273f7d2eb11013eef48d20127ec">XCAN_TXFIFO_DLC_OFFSET</a>, <a class="el" href="group__can__v3__0.html#gaa79a11d4a8c19f30b975ca12c69ac59b">XCAN_TXFIFO_DW1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga837960e76adad251699823f379f5805d">XCAN_TXFIFO_DW2_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga2145be62a44e81c1899cded24970b3ae">XCAN_TXFIFO_ID_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8ba9b10678fbc6bd6093fdc5e9eb3edd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_SendHighPriority </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>FramePtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This routine sends a CAN High Priority frame. </p>
<p>This function first checks if TX High Priority Buffer is empty. If yes, it then writes the given frame into the Buffer. If not, This function returns immediately. This function does not wait for the given frame being sent to CAN bus.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">FramePtr</td><td>is a pointer to a 32-bit aligned buffer containing the CAN High Priority frame to be sent.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if TX High Priority Buffer was not full and the given frame was written into the buffer;</li>
<li>XST_FIFO_NO_ROOM if there is no room in the TX High Priority Buffer for this frame.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>If the frame needs to be sent immediately and not delayed by processor's interrupts handling, the caller should disable interrupt at processor level before invoking this function. </p>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#ga2092c4148ae5c6498597afc619bb4261">XCan_IsHighPriorityBufFull</a>, <a class="el" href="group__can__v3__0.html#gadc3975197d179762353e8a920a9caa0d">XCAN_TXBUF_DLC_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga6311c1adc84203d7c48ac90a6717c4b2">XCAN_TXBUF_DW1_OFFSET</a>, <a class="el" href="group__can__v3__0.html#gae0eb36caf4ea62b4655b5238a246f3d7">XCAN_TXBUF_DW2_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga0a9763565a11cd5050b4e9c41465ddf9">XCAN_TXBUF_ID_OFFSET</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

</div>
</div>
<a class="anchor" id="ga75aabbb82d96151cadfd3c26a2a285e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_SetBaudRatePrescaler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Prescaler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine sets Baud Rate Prescaler value. </p>
<p>The system clock for the CAN controller is divided by (Prescaler + 1) to generate the quantum clock needed for sampling and synchronization. Read the device specification for details.</p>
<p>Baud Rate Prescaler could be set only after CAN device entered Configuration Mode. So please call <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3" title="This function allows the CAN device to enter one of the following operation modes: ...">XCan_EnterMode()</a> to enter Configuration Mode before using this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">Prescaler</td><td>is the value to set. Valid values are from 0 to 255.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the Baud Rate Prescaler value is set successfully.</li>
<li>XST_FAILURE if CAN device is not in Configuration Mode.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#gad8e0a08c36f9f9528728ca28bb9e6244">XCAN_BRPR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>, <a class="el" href="group__can__v3__0.html#gac2ff2f17841fcf789f5e214205aa844a">XCAN_MODE_CONFIG</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf60120410396727f6e9304ce9ba65980"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_SetBitTiming </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>SyncJumpWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>TimeSegment2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>TimeSegment1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine sets Bit time. </p>
<p>Time segment 1, Time segment 2 and Synchronization Jump Width are set in this function. Device specification requires the values passed into this function be one less than the actual values of these fields. Read the device specification for details.</p>
<p>Bit time could be set only after CAN device entered Configuration Mode. Please call <a class="el" href="group__can__v3__0.html#ga994a0b0bd9c938e99de9d7ffceb10ef3" title="This function allows the CAN device to enter one of the following operation modes: ...">XCan_EnterMode()</a> to enter Configuration Mode before using this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">SyncJumpWidth</td><td>is the Synchronization Jump Width value to set. Valid values are from 0 to 3. </td></tr>
    <tr><td class="paramname">TimeSegment2</td><td>is the Time Segment 2 value to set. Valid values are from 0 to 7. </td></tr>
    <tr><td class="paramname">TimeSegment1</td><td>is the Time Segment 1 value to set. Valid values are from 0 to 15.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the Bit time is set successfully.</li>
<li>XST_FAILURE if CAN device is not in Configuration Mode.<ul>
<li>XST_INVALID_PARAM if any value of SyncJumpWidth, TimeSegment2 and TimeSegment1 is invalid.</li>
</ul>
</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="group__can__v3__0.html#gacdaadb8b222d87fe9dcebd4e7bfd6598">XCAN_BTR_OFFSET</a>, <a class="el" href="group__can__v3__0.html#ga482474a9585aad0b5f98f33336d86c38">XCAN_BTR_SJW_MASK</a>, <a class="el" href="group__can__v3__0.html#ga53d62e28de515b3288a263d20fea0bf3">XCAN_BTR_SJW_SHIFT</a>, <a class="el" href="group__can__v3__0.html#ga71bb7c04d078e61946418f812b09cd81">XCAN_BTR_TS1_MASK</a>, <a class="el" href="group__can__v3__0.html#gac0d704dc38470642a131dda752169999">XCAN_BTR_TS2_MASK</a>, <a class="el" href="group__can__v3__0.html#gabad8a33a4b1f9e8d865514c2817e4653">XCAN_BTR_TS2_SHIFT</a>, <a class="el" href="group__can__v3__0.html#ga6b437133a6a2f40f56cf3c80102f5b0d">XCan_GetMode()</a>, <a class="el" href="group__can__v3__0.html#gac2ff2f17841fcf789f5e214205aa844a">XCAN_MODE_CONFIG</a>, and <a class="el" href="group__can__v3__0.html#ga4b58327ea939610d5b1816a686ffd6c7">XCan_WriteReg</a>.</p>

<p>Referenced by <a class="el" href="group__can__v3__0.html#gaa18e848a6ffc670e024972ffc71b2ba8">XCan_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3a7838a033b61a842b06e3ee4b06a614"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_SetHandler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>HandlerType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallBackFunc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallBackRef</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8h.html">xcan.h</a>&gt;</code></p>

<p>This routine installs an asynchronous callback function for the given HandlerType: </p>
<pre>
HandlerType              Callback Function Type
-----------------------  ---------------------------
XCAN_HANDLER_SEND        XCan_SendRecvHandler
XCAN_HANDLER_RECV        XCan_SendRecvHandler
XCAN_HANDLER_ERROR       XCan_ErrorHandler
XCAN_HANDLER_EVENT       XCan_EventHandler</pre><pre>HandlerType              Invoked by this driver when:
-----------------------  --------------------------------------------------
XCAN_HANDLER_SEND        A frame transmitted by a call to
                         <a class="el" href="group__can__v3__0.html#gad4717011f46b8e9d5e15c0bfb04c33c8" title="This function sends a CAN Frame. ">XCan_Send()</a> has been sent successfully.</pre><pre>XCAN_HANDLER_RECV        A frame has been received and is sitting in
                         the RX FIFO.</pre><pre>XCAN_HANDLER_ERROR       An error interrupt is occurring.</pre><pre>XCAN_HANDLER_EVENT       Any other kind of interrupt is occurring.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">HandlerType</td><td>specifies which handler is to be attached. </td></tr>
    <tr><td class="paramname">CallBackFunc</td><td>is the address of the callback function. </td></tr>
    <tr><td class="paramname">CallBackRef</td><td>is a user data item that will be passed to the callback function when it is invoked.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS when handler is installed.</li>
<li>XST_INVALID_PARAM when HandlerType is invalid.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Invoking this function for a handler that already has been installed replaces it with the new handler. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a85a35a86e926f2f6c881b919323e1a8a">XCan::ErrorHandler</a>, <a class="el" href="struct_x_can.html#acc444eee1192bc6a921d264b452c507c">XCan::ErrorRef</a>, <a class="el" href="struct_x_can.html#acc72a94f8c346fdf0925fab5ed957a79">XCan::EventHandler</a>, <a class="el" href="struct_x_can.html#aba90fb0e2c69978d21a8b53358c7f8b6">XCan::EventRef</a>, <a class="el" href="struct_x_can.html#a6c2d9a0f9e4d91891e67e9204dbb7094">XCan::IsReady</a>, <a class="el" href="struct_x_can.html#a8f2d0f6050bb89ce5854b703caceb883">XCan::RecvHandler</a>, <a class="el" href="struct_x_can.html#a6bbcd54ab93e47c5cf5ba20194667760">XCan::RecvRef</a>, <a class="el" href="struct_x_can.html#a1860cf3346043b070b289f09f38ee6d5">XCan::SendHandler</a>, <a class="el" href="struct_x_can.html#a9f878dac03d57becb449745f0e443907">XCan::SendRef</a>, <a class="el" href="group__can__v3__0.html#ga95c42c89b517eab2aa63b584178e19d7">XCAN_HANDLER_ERROR</a>, <a class="el" href="group__can__v3__0.html#ga2b8a36e69531ded498ee4aae48144703">XCAN_HANDLER_EVENT</a>, <a class="el" href="group__can__v3__0.html#gac3819485b065f3726f30fab00768891a">XCAN_HANDLER_RECV</a>, and <a class="el" href="group__can__v3__0.html#ga0951d27e2a23e485fb9d04019714ff19">XCAN_HANDLER_SEND</a>.</p>

</div>
</div>
<a class="anchor" id="ga2b8e3ee4379e7a73c80a11d3877fb077"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XCan_VmInitialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_can.html">XCan</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>VirtAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This routine initializes of a specific <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance/driver. </p>
<p>This function should only be used if Virtual Memory support is necessary. The caller is responsible for calculating the correct device base address in Virtual memory address space and passing it into this function.</p>
<p>This initialization entails:</p><ul>
<li>Search for device configuration given the device ID.</li>
<li>Initialize Base Address field of the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> structure using the given virtual address parameter value.</li>
<li>Populate all other data fields in the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> structure.</li>
<li>Reset the device.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to be worked on. </td></tr>
    <tr><td class="paramname">DeviceId</td><td>is the unique ID of the device controlled by this <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance. Passing in a device ID associates the generic <a class="el" href="struct_x_can.html" title="The XCan driver instance data. ">XCan</a> instance to a specific device, as chosen by the caller or application developer. </td></tr>
    <tr><td class="paramname">VirtAddr</td><td>is the device base address in the virtual memory address space. The caller is responsible for keeping the address mapping from VirtAddr to the device physical base address unchanged once this function is invoked. Unexpected errors may occur if the address mapping changes after this function is called.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful</li>
<li>XST_DEVICE_NOT_FOUND if device configuration information was not found for a device with the supplied device ID.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_can.html#a1e0d6fa07b790c02faf59b173f4d2f2a">XCan::BaseAddress</a>, and <a class="el" href="group__can__v3__0.html#ga5ea4b468a9ac5d22eb5411cff7a59353">XCan_LookupConfig()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="gaa7cf63c4b2796eb251614e16d8dc1554"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_x_can___config.html">XCan_Config</a> XCan_ConfigTable[]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan_8c.html">xcan.c</a>&gt;</code></p>

<p>This table contains configuration information for each CAN device in the system. </p>

</div>
</div>
<a class="anchor" id="gae614abb463a25471e68ccaf5515c88a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_x_can___config.html">XCan_Config</a> XCan_ConfigTable[XPAR_XCAN_NUM_INSTANCES]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="xcan__g_8c.html">xcan_g.c</a>&gt;</code></p>
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line">        {</div>
<div class="line">                XPAR_OPB_CAN_0_DEVICE_ID,   </div>
<div class="line">                XPAR_OPB_CAN_0_BASEADDR,    </div>
<div class="line">                XPAR_OPB_CAN_0_CAN_NUM_ACF  </div>
<div class="line">         }</div>
<div class="line">}</div>
</div><!-- fragment -->
<p>This table contains configuration information for each CAN device in the system. </p>

</div>
</div>
</div><!-- contents -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
